#ifndef STRAY_GRAPHICS_FORMAT_H
#define STRAY_GRAPHICS_FORMAT_H

#include "../Common.h"

namespace Stray {
namespace Core {
namespace Graphics {

enum DepthBufferFormat
{
	DBF_D24S8,
	DBF_D24X8,
	DBF_D16,

	DBF_MAX,
};

enum IndexBufferFormat
{
	IBF_INDEX16,
	IBF_INDEX32,

	IBF_MAX,
};

enum TextureFormat
{
	TF_A8,
	TF_A8R8G8B8,
	TF_A2R10G10B10,
	TF_A16B16G16R16,
	TF_A16B16G16R16F,
	TF_A32B32G32R32F,
	TF_A1R5G5B5,
	TF_R5G6B5,
	TF_DXT1,
	TF_DXT5,

	TF_MAX,
};

enum RenderTargetFormat
{
	RTF_A8,
	RTF_A8R8G8B8,
	RTF_A2R10G10B10,
	RTF_A16B16G16R16,
	RTF_A16B16G16R16F,
	RTF_A32B32G32R32F,

	RTF_MAX,
};

Stray::Uint32 bitsPerPixel(TextureFormat format);
Stray::Uint32 bitsPerPixel(RenderTargetFormat format);

}
}
}

#endif